ResourceFinder

Engineering Specification Requirements

Submitted by

Suparna Agnihotri
Ashok Devineni
Shaila Gadge
Salini Panchumarthi

Table of Contents
1.	Purpose of the Document 
2.	Scope of the Document
3.	Project Description 
3.1.	Overview of ResourceFinder
3.2.	Customer for ResourceFinder
3.3.	Users of ResourceFinder
4.	Software Requirements
4.1.	Functional Requirements
4.2.	Technical Requirements 
5.	Hardware Requirements 
6.	Use case Scenarios 
7.	Formal Use case Specifications 
8.	System Architecture 
9.	Project Management and Development Methodologies
9.1.	Risk Analysis
9.2.	Team Organization
10.	Design and Implementation Approach
11.	Schedule

1. Purpose of the document:
This document establishes the guidelines for the ResourceFinder that eases the work of the user in entering, editing, saving and retrieving the physical resources information from the electronic repositories. This document is aimed to provide appropriate information for the developers’ and users of the ResourceFinder, which is submitted on December 2, 2004.

2. Scope of the document:
This document describes the requirements for the ResourceFinder, the design details, the implementation details, and the development methodology followed to implement the specifications.

3. Project description:

3.1. Overview of ResourceFinder:
ResourceFinder is a text based search and indexing tool, designed to save the physical resources information, and search resources on the Intranet and the Internet. Before adding the physical resource information into the electronic repositories, each resource is indexed. Indexing of the resource is done using a tool IRISPen that scans the keywords of the resource. Calibration of the physical resource is done with the online resources while indexing it. A third party tool X1, customized into the ResourceFinder, aids the search for the Intranet resources. The search for the Internet resources is backed up by connecting to the proprietary APIs of some of the websites, which gets information from the websites backends. ResourceFinder is aimed to connect to the National Library of Medicine’s (NLM’s) Gateway API which retrieves information from various websites like PubMed, MEDLINE, TOXLINE etc.

3.2. Customer for ResourceFinder:
Mr. Richard H. Moore and Ms. Lesley Wojcik at Avon Breast Cancer Evaluation Center, Massachusetts General Hospital (MGH).

3.3. Users of ResourceFinder:
The users of ResourceFinder include the team at Avon Breast Cancer Evaluation Center, Massachusetts General Hospital (MGH).

4. Software Requirements:

4.1. Functional Requirements:

Creating a repository for physical resources:
ResourceFinder indexes and saves the physical resources information into repositories. The user will be given an option to calibrate the physical resource with online repositories such as PubMed, MEDLINE, TOXLINE etc before saving it. The user can enter more keywords to index the resource while calibrating with online resources, before saving it’s information into the repositories

1.	Add a new Room
2.	Add a new Storage type
3.	Add a location
4.	Add a resource
5.	Calibrate a resource using IRIS Pen
6.	Calibrate a resource by typing in resource description

Searching for resources using ResourceFinder:
ResourceFinder helps the user to search the repositories to get the available physical resources information. The search results are displayed to the user on the ResourceFinder/X1 front end.

7.	Search local drive
8.	Search network drive
9.	Search Internet

Sort searched resources using ResourceFinder/X1:

10.	Sort search results by file type
11.	Sort search results by size
12.	Sort search results by modified date
13.	Sort search results by relevance

Save, Edit Search Results
ResourceFinder provides editing capabilities to edit the search results. The user will be provided with options to save the edited results or to discard the changes made to the search results. The editing feature to ResourceFinder can be provided by modifying the functionality of the X1’s SDK.

14.	Save search results
15.	Open Saved searches
16.	Delete search result entries
17.	Categorize search results

4.2. Technical Requirements:
1.	IRISPen software
2.	Microsoft Access
3.	Windows platform – Windows XP and higher
4.	.NET framework (optional)

5. Hardware Requirements:
1.	Pentium machines with 1GHz processor and 128MB+ RAM.
2.	Minimum 200 MB free space.
3.	IRIS pen

6. Use Case Scenarios:

Scenario 1: Ms. Sheryl creates a new Room.

Dr. Andrews is introduced to Ms. Sheryl as a newly hired employee who has a huge collection of articles and documents from his research. She decides to create a location in the database for his collection of resources. She decides to index and save the information of his resources into the electronic repositories. So, she creates a room which is the first thing to do to create a new database for newly hired person. She then decides to quit the application and work on it later.

Scenario 2: Ms. Sheryl adds storage types to the newly created room 

Ms. Sheryl goes in to the room created for Dr. Andrews. As she couldn’t see any storage type in that room, she creates the different storage types depending on the requirement. Say for example Dr. Andrews’s room has book shelves, steel cabinets. She then creates storage types of book shelf and steel cabinet to which description of various physical resources in them can be added. She decides to work on the database later and so quits the application.

Scenario 3: Ms. Sheryl adds location name of particular storage type

Ms. Sheryl comes back and selects the room created for Dr. Andrews. She finds some storage types and selects them. She finds that there is no location names specified for those storage types. So, she defines some location names such as adrew1, andrew2 etc. and adds them to that storage type. She now decides to work on the database some later and so quits the application.

Scenario 4: Ms. Sheryl creates a new location for Dr. Andrews’s room (Room6).

Dr. Andrews is introduced to Ms. Sheryl as a newly hired employee who has a huge collection of articles and documents from his research. She decides to create a location in the database for his collection of resources. She decides to index and save the information of his resources into the electronic repositories.
She opens the ‘ResourceFinder’ application. Ms. Sheryl knows the location and type of storage in his room. She starts entering the details of the location, type and description of the resources into the ResourceFinder. She types in the room number- 6 for location, Dr. Andrews Williams as the owner of the resource. She selects ‘steel cabinets’ as the storage type. She decides not to enter any description for the cabinet. She types in the cabinet number ‘C50’ and hits ‘OK’ button. A success message is displayed in a message-box, which confirms that a location is created in the database.
After entering the owner, location and type of storage, ResourceFinder provides Ms. Sheryl with three options. She decides to exit the application, which is one of the three options she is presented with.

Scenario 5: Ms. Sheryl enters keywords related to ‘Neoplasm Analysis’ article to save the article found in Dr. Andrews’s room.

Ms. Sheryl finds an article on Neoplasm Analysis, which is part of Dr. Andrews’s collection of resources. She opens ‘ResourceFinder’ application, to add information of resources into the repository. She selects the owner, location and type of storage of resource – which she had created before as, ‘Dr.Andrews/Room6/C50’ from the available locations. She decides to store the article in a manila folder. She names the manila folder as ‘Neoplasm Analysis Articles’. 
She sees the option to calibrate the description/keyword(s). She fills in the description/keyword(s) of the ‘Neoplasm Analysis’ article. She enters the number of target hits and starts calibration. When the number of hits becomes less than or equal to the number of target hits system displays red signal indicating that calibration is stopped. She scans and enters barcode sticker information into the data entry form and attaches to the article. She finally saves the ‘Neoplasm Analysis’ article with the owner, location and type of storage, description/keywords, and barcode information.
After saving the article’s information using ResourceFinder, the application gives Ms. Sheryl some options to continue adding resources, create new location or to exit the application. Ms. Sheryl plans to exit the application.

Scenario 6: Dr. Judy searches documents using ResourceFinder.

Dr. Judy opens the ResourceFinder application. She wants documents based on the topic ‘sentinel lymph node biopsy ’. She types the keywords ‘sentinel lymph node biopsy’ in the keywords box. The system has a panel of various location options. The system can perform searches in these locations. She selects local c drive, shared network drive, and PubMed and starts searching. The system displays various documents. She sees some of the documents from the shared network drive, are uploaded by her colleague, Dr. Keith. Dr. Judy reads through some of the documents. After getting enough information, she exits ResourceFinder application.

Scenario 7: Dr. Keith searches documents using X1.

Dr. Keith opens the X1 application. He wants documents based on the topic ‘sentinel lymph node biopsy ’. He types the keywords ‘sentinel lymph node biopsy’ in the keywords box and starts searching. The system displays various documents. He recognizes some of the documents as they are located in his room. Dr. Keith reads through some of the documents. After getting enough information, he exits X1 application.

Scenario 8: Dr. Peggy modifies saved search results using ResourceFinder.

Dr. Peggy opens the ResourceFinder. She wants to get the information related to ‘Breast Chemotherapy’ from the available resources in the repository. She decides to search the internal resources for getting the information on ‘Breast Chemotherapy’. She opens the search screen and chooses to search for the resources information in the repository using X1. She finds the information of the resources related to her search. She notices that some of resources are not useful to her. She edits and deletes the search results and saves the search results that interested her. Dr. Peggy exits the application, after getting enough information. 

Use Case ID:	1	
Use Case Name:	Creating a new room	
Created by:	Ashok, Salini	Last Updated by:	Ashok, Salini	
Date Created:	December 5, 2004	Date Last Updated:	December 5, 2004	
Description:	User creates a new room for a new person	
Priority:	High	
Actor(s):	User, System	
Actor(s) Goals:	To add a new room to the database	
Pre-conditions:	No room exists for the new person in the database	
Scenarios:	1.	User opens the REF application
2.	User clicks on create new room menu option
3.	REF creates a new room and prompts the user to enter room information such as its name, location etc.
4.	user enters the required information and clicks “ok” button
5.	REF then gives a message saying that room is created successfully
6.	User either quits the application or carries on with other actions	
Post-conditions:	New room is created for a  new person in the database	
Exceptions:	 	
Notes:		

Use Case ID:	2	
Use Case Name:	Adding a new storage type to a room	
Created by:	Ashok, Salini	Last Updated by:	Ashok, Salini	
Date Created:	December 5, 2004	Date Last Updated:	December 5, 2004	
Description:	Creating a new storage type in a room	
Priority:	High	
Actor(s):	User, System	
Actor(s) Goals:	To create a new storage type such as book shelf, file cabinet etc.	
Pre-conditions:	1.	REF application is open.
2.	The room to which user adds new storage type already exists in database	
Scenarios:	1.	User selects the room from the available list to which he/she wants to a new storage type
2.	He/she then clicks on create new storage type
3.	REF creates the desired storage type and prompts the user to fill in details such as its description
4.	User fills in the required information and clicks “ok “ button
5.	REF then displays a message saying that a new storage type is created successfully
6.	User either quits the application or carries on with other actions	
Post-conditions:	A new storage type is created in the desired room	
Exceptions:	 	
Notes:		

Use Case ID:	3	
Use Case Name:	Create a location	
Created by:	Ashok, Salini	Last Updated by:	Shaila	
Date Created:	November 16, 2004	Date Last Updated:	November 18, 2004	
Description:	To create a location	
Priority:	High	
Actor(s):	User	
Actor(s) Goals:	To create a new location to enter a resources.	
Pre-conditions:	The application is opened in data entry mode and there is no electronic database for this room yet.	
Scenarios:	1.	System prompts the user to enter following information
•	Room number (Required)
•	Owner of the room (Required)
•	Storage Type (Required)
•	Storage Description
•	Storage name or identifier (Required)
2.	User fills in required information or chooses the appropriate option.
3.	If any of the required information is not filled in, system displays an error message indicating the missing information.
4.	If all the required information is filled in, system gives confirmation box “Success. Location created.”
5.	On successful creation of location, system provides the user with following options
•	Create new location
•	Fill in resources
•	Exit the application
6.	On choosing “Create new location”, steps 1 to 5 are repeated to add new location’s description to the system.
7.	On choosing “Fill in resources”, the system opens a new form.
8.	On choosing “Exit”, application closes with user’s confirmation.	
Post-conditions:	The records of location are added to XML file.
For every record of location an entry is created in the repository.	
Exceptions:	 	
Notes:		

Use Case ID:	4	
Use Case Name:	 Adding a physical resource to database. 	
Created by:	Suparna	Last Updated by:	Suparna	
Date Created:	December 5, 2004	Date Last Updated:	December 6, 2004	
Description:	To add a physical resource using ResourceFinder. 	
Priority:	High	
Actor(s):	User	
Actor(s) Goals:	To add a physical resource to resources database using hanging folder and manila folder, in ResourceFinder.	
Pre-conditions:	The application opens ResourceFinder in ‘add resources’ mode.	
Scenarios:	1.	System prompts the user to enter the following details:
•	Location (choose from the box)
•	Type of physical resource (choose from the box)
•	Hanging folder (Yes/No)
•	Name of the hanging folder (required if hanging folder is selected)
•	Manila folder (Yes/No)
•	Name of the manila folder (required if manila folder is selected)
2.	Want to calibrate the resource? (Yes/No)
3.	Number of target hits
4.	User selects the location from the available locations.
5.	User selects the type of resource from the available types.
6.	User enters the required information.
7.	User selects ‘Yes’ for hanging folder. 
8.	User enters name for hanging folder.
9.	User selects ‘Yes’ for manila folder.
10.	User enters name for manila folder.
11.	User enters the description/keyword(s) for the physical resource.
12.	User selects not to calibrate the description of the physical resource. 
13.	User saves the physical resource with the description.
14.	If any of the required information is not filled in, system displays an error message indicating the missing information.
15.	If the required information is entered, the system displays confirmation message indicating the addition of the physical resource.
 	
Post-conditions:	System displays “Resources Added’ message.	
Exceptions:		
Notes:		

Use Case ID:	5	
Use Case Name:	 Adding a physical resource to database. 	
Created by:	Suparna	Last Updated by:	Suparna	
Date Created:	December 5, 2004	Date Last Updated:	December 6, 2004	
Description:	To add a physical resource using ResourceFinder. 	
Priority:	High	
Actor(s):	User	
Actor(s) Goals:	To add a physical resource to resources database using hanging folder but no manila folder, in ResourceFinder.	
Pre-conditions:	The application opens ResourceFinder in ‘add resources’ mode.	
Scenarios:	1.	System prompts the user to enter the following details:
•	Location (choose from the box)
•	Type of physical resource (choose from the box)
•	Hanging folder (Yes/No)
•	Name of the hanging folder (required if hanging folder is selected)
•	Manila folder (Yes/No)
•	Name of the manila folder (required if manila folder is selected)
•	Want to calibrate the resource? (Yes/No)
•	Number of target hits
2.	User selects the location from the available locations.
3.	User selects the type of resource from the available types.
4.	User enters the required information.
5.	User selects ‘Yes’ for hanging folder. 
6.	User enters name for hanging folder.
7.	User selects ‘No’ for manila folder.
8.	User enters the description/keyword(s) for the physical resource.
9.	User selects not to calibrate the description of the physical resource. 
10.	User saves the physical resource with the description.
11.	If any of the required information is not filled in, system displays an error message indicating the missing information.
12.	If the required information is entered, the system displays confirmation message indicating the addition of the physical resource.
 	
Post-conditions:	System displays “Resources Added’ message.	
Exceptions:		
Notes:		

Use Case ID:	6	
Use Case Name:	 Adding a physical resource to database. 	
Created by:	Suparna	Last Updated by:	Suparna	
Date Created:	December 5, 2004	Date Last Updated:	December 6, 2004	
Description:	To add a physical resource using ResourceFinder. 	
Priority:	High	
Actor(s):	User	
Actor(s) Goals:	To add a physical resource to resources database using manila folder but no hanging folder, in ResourceFinder.	
Pre-conditions:	The application opens ResourceFinder in ‘add resources’ mode.	
Scenarios:	1.	System prompts the user to enter the following details:
•	Location (choose from the box)
•	Type of physical resource (choose from the box)
•	Hanging folder (Yes/No)
•	Name of the hanging folder (required if hanging folder is selected)
•	Manila folder (Yes/No)
•	Name of the manila folder (required if manila folder is selected)
•	Want to calibrate the resource? (Yes/No)
•	Number of target hits
2.	User selects the location from the available locations.
3.	User selects the type of resource from the available types.
4.	User enters the required information.
5.	User selects ‘Yes’ for manila folder. 
6.	User enters name for hanging folder.
7.	User selects ‘No’ for hanging folder.
8.	User enters the description/keyword(s) for the physical resource.
9.	User selects not to calibrate the description of the physical resource. 
10.	User saves the physical resource with the description.
11.	If any of the required information is not filled in, system displays an error message indicating the missing information.
12.	If the required information is entered, the system displays confirmation message indicating the addition of the physical resource.
 	
Post-conditions:	System displays “Resources Added’ message.	
Exceptions:		
Notes:		

Use Case ID:	7	
Use Case Name:	 Adding a physical resource to database. 	
Created by:	Suparna	Last Updated by:	Suparna	
Date Created:	December 5, 2004	Date Last Updated:	December 6, 2004	
Description:	To add a physical resource using ResourceFinder. 	
Priority:	High	
Actor(s):	User	
Actor(s) Goals:	To add a physical resource to resources database without using hanging folder or   manila folder, in ResourceFinder.	
Pre-conditions:	The application opens ResourceFinder in ‘add resources’ mode.	
Scenarios:	1.	System prompts the user to enter the following details:
•	Location (choose from the box)
•	Type of physical resource (choose from the box)
•	Hanging folder (Yes/No)
•	Name of the hanging folder (required if hanging folder is selected)
•	Manila folder (Yes/No)
•	Name of the manila folder (required if manila folder is selected)
•	Want to calibrate the resource? (Yes/No)
•	Number of target hits
2.	User selects the location from the available locations.
3.	User selects the type of resource from the available types.
4.	User enters the required information.
5.	User selects ‘No’ for hanging folder. 
6.	User selects ‘No’ for manila folder.
7.	User enters the description/keyword(s) for the physical resource.
8.	User selects not to calibrate the description of the physical resource.
9.	User saves the physical resource with the description.
10.	If any of the required information is not filled in, system displays an error message indicating the missing information.
11.	If the required information is entered, the system displays confirmation message indicating the addition of the physical resource.
 	
Post-conditions:	System displays “Resources Added’ message.	
Exceptions:		
Notes:		

Use Case ID:	8	
Use Case Name:	 Calibrating the description of a text based physical resource using IRIS pen. 	
Created by:	Suparna	Last Updated by:	Suparna	
Date Created:	December 5, 2004	Date Last Updated:	December 6, 2004	
Description:	To calibrate the description of a physical resource in ResourceFinder using IRIS pen. 	
Priority:	High	
Actor(s):	User	
Actor(s) Goals:	To calibrate the description/keyword(s) of a physical resource using ResourceFinder.	
Pre-conditions:	The software utility for IRIS pen is installed onto the machine. The IRIS pen is connected to the machine. User is capable of using IRIS pen. The application opens ResourceFinder in calibration mode.	
Scenarios:	1.	User scans the text based physical resource using IRIS pen.
2.	The IRIS pen enters text in to the text field.
3.	User enters number of target hits and starts calibration.
4.	System starts calibration and displays progress on the track bar. 
5.	The track bar indicates number of hits the description gets from the various search engines.
6.	System stops calibrating the description when the number of hits is between the target hit range.
7.	System displays red signal indicating that the calibration has stopped.
•	Scenario 1:
1.	User is satisfied with the description/keyword(s).
2.	User saves the description/keyword(s) for that text based physical resource.
3.	System displays a message indicating that the text based physical resource is saved with the keyword(s).
•	Scenario 2:
1.	User is not satisfied with the description.
2.	User repeats steps 1 to 7.
3.	After getting desired number of hits for the description/keyowrd(s) user saves the description.
4.	System displays message indicating that the resource is saved with the description.	
Post-conditions:	System displays ‘Saved resource’ message in ResourceFinder.	
Exceptions:		
Notes:		

Use Case ID:	9	
Use Case Name:	 Calibrating the description of a physical resource. 	
Created by:	Suparna	Last Updated by:	Suparna	
Date Created:	December 5, 2004	Date Last Updated:	December 6, 2004	
Description:	To calibrate the description of a physical resource in ResourceFinder. 	
Priority:	High	
Actor(s):	User	
Actor(s) Goals:	To calibrate the description/keyword(s) of a physical resource by typing in, using ResourceFinder.	
Pre-conditions:	The application opens ResourceFinder in calibration mode.	
Scenarios:	1.	User enters the description of the physical resource in to the text field.
2.	User enters number of target hits and starts calibration.
3.	System starts calibration and displays progress on the track bar. 
4.	The track bar indicates number of hits the description gets from the various search engines.
5.	System stops calibrating the description when the number of hits is between the target hit range.
6.	System displays red signal indicating that the calibration has stopped.
•	Scenario 1:
1.	User is satisfied with the description/keyword(s).
2.	User saves the description/keyword(s) for that text based physical resource.
3.	System displays a message indicating that the text based physical resource is saved with the keyword(s).
8.	Scenario 2:
1.	User is not satisfied with the description.
2.	User repeats steps 1 to 6.
3.	After getting desired number of hits for the description/keyowrd(s) user saves the description.
4.	System displays message indicating that the resource is saved with the description.	
Post-conditions:	System displays ‘Saved resource’ message in ResourceFinder.	
Exceptions:		
Notes:		

Use Case ID:	10	
Use Case Name:	 Searching for a physical resource on the local drive.	
Created by:	Ashok, Salini	Last Updated by:	Ashok, Salini	
Date Created:	November 16, 2004	Date Last Updated:	November 16, 2004	
Description:	To search for a physical resource on the local drive using ResourceFinder. 	
Priority:	Low	
Actor(s):	User	
Actor(s) Goals:	To search for a physical resources in the internal repositories on the local drive using ResourceFinder.	
Pre-conditions:	The application is opened in search mode.	
Scenarios:	1.	User enters the search word in to the text field and hits the search button
2.	System displays search results in a sequence of lines where each result corresponds to the keywords with which the search was done. Each result relates the keywords to the name/contents of the file on the local drive.	
Post-conditions:	System displays a series of search results from the local drive.	
Exceptions:	 	
Notes:		

Use Case ID:	11	
Use Case Name:	 Searching for a physical resource on the network drive. 	
Created by:	Ashok, Salini	Last Updated by:	Ashok, Salini	
Date Created:	November 30, 2004	Date Last Updated:	November 30, 2004	
Description:	To search for a physical resource on the network drive using ResourceFinder. 	
Priority:	Low	
Actor(s):	User	
Actor(s) Goals:	To search for a physical resources in the internal repositories on the network drives using ResourceFinder.	
Pre-conditions:	The application is opened in search mode.	
Scenarios:	9.	User enters the search word in to the text field and hits the search button.
10.	User chooses the drives he/she wants to search for the resources.
11.	System displays search results in a sequence of lines where each result corresponds to the keywords with which the search was done. Each result relates the keywords to the name/contents of the file on the network drives.	
Post-conditions:	System displays a series of search results from the network drives.	
Exceptions:		
Notes:		

Use Case ID

Use Case ID:	12	
Use Case Name:	 Searching for a resource on the Internet.	
Created by:	Ashok, Salini	Last Updated by:	Ashok, Salini	
Date Created:	December 5, 2004	Date Last Updated:	November 5, 2004	
Description:	To search for a physical resource on the network drive using ResourceFinder. 	
Priority:	Low	
Actor(s):	User	
Actor(s) Goals:	To search for a physical resources in the internal repositories on the network drives using ResourceFinder.	
Pre-conditions:	The application is opened in search mode.	
Scenarios:	1.	User enters the search word in to the text field and hits the search button.
2.	User chooses the websites he/she wants to search for the resources. If user doesn’t choose the websites, it defaults to all the websites ResourceFinder can connect to search for the resources.
3.	System displays search results in a sequence of lines where each result corresponds to the keywords with which the search was done. Each result relates the keywords to the description/contents of the links on the websites.	
Post-conditions:	System displays a series of search results from the Internet websites.	
Exceptions:		
Notes:		

Use Case ID	13	
Use Case Name:	Open saved Search results using X1	
Created by:	Shaila	Last Updated by:		
Date Created:	December 5, 2004	Date Last Updated:	December 6, 2004	
Description:	Open Search results using X1	
Priority:	Low	
Actor(s):	User	
Actor(s) Goals:	Open the already saved search.	
Pre-conditions:	X1 is open in "Search mode".	
Scenarios:	1. User clicks on ‘Option’ menu.
2. System displays the files with saved search results, below the menu item ‘Save’. 
3. User selects the file from displayed/existing files.
4. System reads from the selected file and displays the contents of the file in X1 window.	
Post-conditions:	System displays previously saved search.	
Exceptions:		
Notes:	Provided X1 SDK available and changes can be made to the front end.

Use Case ID	14	
Use Case Name:	Save search results using X1	
Created by:	Shaila	Last Updated by:		
Date Created:	December 5, 2004	Date Last Updated:		
Description:	Save search results using X1	
Priority:	Low	
Actor(s):	User	
Actor(s) Goals:	Save the selected search results.	
Pre-conditions:	X1 is open in "Search mode".	
Scenarios:	1. User enters the keyword(s) and starts the search.
2. System displays the search results in X1 window.
3. User clicks on ‘Option’ menu.
4. System displays the ‘Save’ menu item.
5. User clicks on the ‘Save’ menu item.
6. System displays a dialog box for entering the file name.
7.User enters the file name and saves the results.	
Post-conditions:	System saves the search results under the file name.	
Exceptions:		
Notes:	Provided X1 SDK available and changes can be made to the front end.

Use Case ID	15	
Use Case Name:	Delete Search results using X1	
Created by:	Shaila	Last Updated by:		
Date Created:	December 5, 2004	Date Last Updated:		
Description:	Delete search results using X1 front end.	
Priority:	Low	
Actor(s):	User	
Actor(s) Goals:	Delete results using X1 front end.	
Pre-conditions:	X1 is open in Edit mode.	
Scenarios:	1. System displays search results.
2. User browses through the list of the results.
3. System displays an icon at the end of each row to exclude the that particular entry from the result set.
4. User deletes/excludes the unwanted the entries by clicking on the icon.	
Post-conditions:	System displays the desired search result.	
Exceptions:		
Notes:	Provided X1 SDK available and changes can be made to the front end.

Use Case ID	16	
Use Case Name:	Categorize Search results using X1	
Created by:	Shaila	Last Updated by:		
Date Created:	December 5, 2004	Date Last Updated:		
Description:	Categorize search results using X1 front end.	
Priority:	Low	
Actor(s):	User	
Actor(s) Goals:	Categorize results using X1 front end.	
Pre-conditions:	X1 is open in Edit mode.	
Scenarios:	1. System displays search results.
2. User browses through the list of the results.
3. User selects the search entry to be categorized.
4. System displays a pop-up window.
5. User either types in or selects the available category list.
6. System displays search categorized.	
Post-conditions:	System displays a mark on search result entry indicating result is categorized.	
Exceptions:		
Notes:	Provided X1 SDK available and changes can be made to the front end.

Use Case ID:	17	
Use Case Name:	Sort results by Document name	
Created by:	Shaila	Last Updated by:		
Date Created:	December 7, 2004	Date Last Updated:		
Description:	Sort results by Document name	
Priority:	Low	
Actor(s):	User	
Actor(s) Goals:	Sort results by Document name	
Pre-conditions:	X1 open in Search mode.	
Scenarios:	1.	System displays a search results in X1 window
2.	User clicks on header tab “Name”.
3.	System displays “Sorted list” by name.	
Post-conditions:	System displays “Sorted list” by name.	
Exceptions:		
Notes:	Provided X1 SDK available and changes can be made to the front end.	

Use Case ID:	18	
Use Case Name:	Sort results by Document Type	
Created by:	Shaila	Last Updated by:		
Date Created:	December 7, 2004	Date Last Updated:		
Description:	Sort results by Document Type	
Priority:	Low	
Actor(s):	User	
Actor(s) Goals:	Sort results by Document Type	
Pre-conditions:	X1 open in Search mode.	
Scenarios:	1.	System displays a search results in X1 window
2.	User clicks on header tab “Type”.
3.	System displays “Sorted list” by Type.	
Post-conditions:	System displays “Sorted list” by type.	
Exceptions:		
Notes:	Provided X1 SDK available and changes can be made to the front end.	

Use Case ID:	19	
Use Case Name:	Sort results by Modified Date	
Created by:	Shaila	Last Updated by:		
Date Created:	December 7, 2004	Date Last Updated:		
Description:	Sort results by Modified Date	
Priority:	Low	
Actor(s):	User	
Actor(s) Goals:	Sort results by modified date	
Pre-conditions:	X1 open in Search mode.	
Scenarios:	1.	System displays a search results in X1 window
2.	User clicks on header tab “modified date”.
3.	System displays “Sorted list” by modified date.	
Post-conditions:	System displays “Sorted list” by modified date.	
Exceptions:		
Notes:	Provided X1 SDK available and changes can be made to the front end.	

Use Case ID:	20	
Use Case Name:	Sort results by document/resource size.	
Created by:	Shaila	Last Updated by:		
Date Created:	December 7, 2004	Date Last Updated:		
Description:	Sort results by document/resource size.	
Priority:	Low	
Actor(s):	User	
Actor(s) Goals:	Sort results by size	
Pre-conditions:	X1 open in Search mode.	
Scenarios:	1.	System displays a search results in X1 window
2.	User clicks on header tab “size”.
3.	System displays “Sorted list” by size	
Post-conditions:	System displays “Sorted list” by size.	
Exceptions:		
Notes:	Provided X1 SDK available and changes can be made to the front end.	

Use Case ID:	21	
Use Case Name:	Sort results by relevance.	
Created by:	Shaila	Last Updated by:		
Date Created:	December 7, 2004	Date Last Updated:		
Description:	Sort results by relevance.	
Priority:	Low	
Actor(s):	User	
Actor(s) Goals:	Sort results by relevance	
Pre-conditions:	X1 open in Search mode.	
Scenarios:	1.	System displays a search results in X1 window
2.	User clicks on header tab “relevance”.
3.	System displays “Sorted list” by relevance.	
Post-conditions:	System displays “Sorted list” by relevance.	
Exceptions:		
Notes:	Provided X1 SDK available and changes can be made to the front end.	

8. System architecture:

Presentation Layer

Process Management

Database Management

ResourceFinder’s front end

Wrapper around X1and ResourceFinder functionality

Repository of information of internal resources

System Architecture is based on our initial thoughts.  A more detailed presentation of the system architecture will be submitted in the next draft.

9. Project Management and Development Methodologies:

 9.1. Risk Analysis:
1.	The momentum of the project may be lost during the month of December when ¾ of the team members will be out of country. 
2.	As the client does not have exact specification outlined, lack of understanding feasible and correct functional specification of project may not serve the purpose. 
3.	Failure to prioritize and understand scope of project. 
4.	As most of team members have to learn new programming language (if chosen) and other skills, there is a possibility of slippage in schedule. 
5.	To come up with a best search algorithm will need more time investment and understanding, which may result in unfinished project. 
6.	Unavailability of hardware and software technical support from Client. 
7.	Unavailability of systems to test and deploy software. 
8.	 Schedule Slippage: This would turn into a major project failure because of constantly changing project requirement and analysis.
9.	Incorrectly defined project specifications. 

9.2. Team Organization:
1. Pair programming: The team decided to work in pairs so as avoid duplication of work and utilize two brain powers to achieve maximum productivity. One person in the pair will work as driver and other as rider. The roles will be exchanged on mutual understanding basis and time schedule of each of the member. The role of the driver is to implement the details and rider will review it simultaneously offering suggestions to improve the quality of the work.
2. Quality Assurance Leader: One person in the team will be chosen to measure the quality of the work. This person assures the quality of work, by testing the application which meets the client’s requirements. He/she will keep the developers posted with the reminders so as to deliver the product to the client with the desired functionality. Other team members will assist QA leader to design test cases to test the overall functionality of the application. 
3. Unit testing: Each team member involved in coding writes unit tests, so that testing strategy will be kept up-to-date with the updates made to the code. Every developer is responsible for reporting the bugs and maintaining the bug database to keep track of the fixes made. 
4. Architect: One person in the team is responsible for the architecture and design of the project. He/she needs to layout the project plan and provide various tasks to the team to implement the plan of action.  
 
10. Design and Implementation Approach:
 The implementation of the design and functional details is done using eXtreme Programming (XP) approach. This allows the team to accommodate changing requirements and make enhancements to the application. By following the XP approach the underlying design remains in tact by adding/modifying the requirements from time to time to the application to meet the client’s requirements.